﻿//using System; PRUEBAS DE EQUIPO PASADO
//using System.Collections.Generic;
//using System.Linq;
//using System.Web;
//using NUnit.Framework;
//using vudu.ClasesDominio;
//using vudu.Logica.Clases;
//using vudu.Datos.SqlServer;

//namespace vudu.Pruebas
//{
//    [TestFixture]
//    public class PruebaPractica
//    {
//        private SqlServerPractica sql;
//        private HorarioDeClase horarioDeClase;
//        private List<HorarioDeClase> listaHorarioDeClase;
//        private List<Salon> salonNoDisponible; 
//        private List<Salon> salonesTotal;
//        private ControladorPractica practica;
//        private Salon salon;

//        [SetUp]
//        public void Init()
//        {
//            sql = new SqlServerPractica();
//            horarioDeClase = new HorarioDeClase();
//            listaHorarioDeClase= new List<HorarioDeClase>();
//            salonesTotal = new List<Salon>();
//            salonNoDisponible = new List<Salon>();
//            //practica = new Practica();
            
            
//        }


//        [Test]
//        public void PruebaConsultarProfesorIndividual()
//        {
//            int cedula = 4097234;
//            string nombre = "Nelson";
//            String apellido = "Rodriguez";
//            Assert.AreEqual(sql.ConsultarProfesorIndividual(cedula).Nombre,nombre);
//            Assert.AreEqual(sql.ConsultarProfesorIndividual(cedula).Apellido, apellido);

//        }

//        [Test]
//        public void PruebaListaDeSalonesOcupados()
//        {
//            horarioDeClase.HoraFin = DateTime.Parse("14:00");
//            horarioDeClase.HoraInicio = DateTime.Parse("12:00");
//            horarioDeClase.SalonDeClase = new Salon();
//            horarioDeClase.SalonDeClase.NumeroSalon = 1;
//            listaHorarioDeClase.Add(horarioDeClase);
//            Assert.AreEqual(horarioDeClase.listaSalonesOcupados(12,14,listaHorarioDeClase)[0].NumeroSalon , 1);
            

//        }


//        [Test]
//        public void PruebaAgregarPractica()
//        {
//            sql = new SqlServerPractica();
//            salonesTotal= new List<Salon>();
//            practica.practica.NombrePractica="Practica de Prueba";
//            practica.practica.NumeroSeccion= 100;
//            practica.practica.profesor = new Profesor();
//            practica.practica.profesor.Cedula=4097234;
//            listaHorarioDeClase = new List<HorarioDeClase>();
//            horarioDeClase = new HorarioDeClase();
//            horarioDeClase.HoraInicio = DateTime.Parse("10:00");
//            horarioDeClase.HoraFin = DateTime.Parse("12:00");
//            horarioDeClase.Dia = "Lunes";
//            listaHorarioDeClase.Add(horarioDeClase);
//            salon = new Salon();
//            salon.NumeroSalon = 1;
//            salonesTotal.Add(salon);
//            practica.CrearPractica(practica.practica,1, listaHorarioDeClase, salonesTotal);
//            //practica = new Practica();
//            practica.practica = sql.ConsultarDatosPractica(sql.UltimoIdPractica());
//            listaHorarioDeClase = new List<HorarioDeClase>();
//            listaHorarioDeClase = sql.ConsultarHorasPracticas(sql.UltimoIdPractica());
//            Assert.AreEqual(practica.practica.NombrePractica, "Practica de Prueba");
//            Assert.AreEqual(practica.practica.NumeroSeccion, 100);
//            Assert.AreEqual(practica.practica.profesor.Nombre, "Nelson");
//            Assert.AreEqual(practica.practica.profesor.Apellido, "Rodriguez");
//            Assert.AreEqual(listaHorarioDeClase[0].Dia, "Lunes");
//            Assert.AreEqual(listaHorarioDeClase[0].HoraInicio, DateTime.Parse("10:00"));
//            Assert.AreEqual(listaHorarioDeClase[0].HoraFin, DateTime.Parse("12:00"));
//            Assert.AreEqual(listaHorarioDeClase[0].SalonDeClase.Nombre, "L2312");
//        }


//        [Test]
//        public void PruebaSalonesDisponibles()
//        {
//            for (int i = 0; i < 3; i++)
//            {
//                salon = new Salon();
//                salon.NumeroSalon = i+1;
//                salonesTotal.Add(salon);
//            }
//            salon = new Salon();
//            salon.NumeroSalon = 2;
//            salonNoDisponible.Add(salon);
//            Assert.AreEqual(horarioDeClase.CompararSalones(salonNoDisponible, salonesTotal)[0].NumeroSalon, 1);
//            Assert.AreEqual(horarioDeClase.CompararSalones(salonNoDisponible, salonesTotal)[1].NumeroSalon, 3);

//        }

//        [Test]
//        public void PruebaConsultarPractica()
//        {
//             //practica = new Practica();
//             practica.practica = sql.ConsultarDatosPractica(1);
//             List<HorarioDeClase> listaHorasPractica = new List<HorarioDeClase>();
//             listaHorasPractica = sql.ConsultarHorasPracticas(1);
//            Assert.AreEqual(practica.practica.NombrePractica,"Practica Evaluacion de Sistemas Informaticos");
//            Assert.AreEqual(practica.practica.profesor.Nombre,"Nelson");
//            Assert.AreEqual(practica.practica.profesor.Apellido,"Rodriguez");
//            Assert.AreEqual(listaHorasPractica[0].HoraInicio.Hour,7);
//            Assert.AreEqual(listaHorasPractica[0].HoraFin.Hour,9);
//            Assert.AreEqual(listaHorasPractica[0].SalonDeClase.Nombre,"L1205");
//            Assert.AreEqual(listaHorasPractica[0].SalonDeClase.Tipo, "Audiovisual");

            
//        }

//        [Test]

//        public void pruebaConsultarSalones()
//        {
//            salonesTotal = new List<Salon>();
//            salonesTotal = sql.ConsultarSalones(1);
//            Assert.AreEqual(salonesTotal[0].NumeroSalon,1);
//            Assert.AreEqual(salonesTotal[1].NumeroSalon,2);

//        }

//        [Test]
//        public void pruebaModificarProfesor()
//        {
//            sql.ModificarProfesor(6789000,1);
//            Assert.AreEqual(sql.ConsultarDatosPractica(1).profesor.Nombre, "Lucia");
//            Assert.AreEqual(sql.ConsultarDatosPractica(1).profesor.Apellido, "Cardoso");
//        }

//        [Test]

//        public void pruebaModificarSalon()
//        {
//            ControladorPractica practica=new ControladorPractica();
//            //practica.ModificarSalonPractica(1,"Viernes","4");
//            Assert.AreEqual(sql.ConsultarHorasPracticas(1)[0].SalonDeClase.Nombre,"EC125");
//            Assert.AreEqual(sql.ConsultarHorasPracticas(1)[0].SalonDeClase.Tipo,"Salon");
//        }

//        [Test]
//        public void pruebaEliminarPractica()
//        {
//            sql.EliminarPractica(2);
//            Practica practica = new Practica();
//            practica = sql.ConsultarDatosPractica(2);
//            Assert.AreNotEqual(practica.NombrePractica,"Practica Arquitectura de Computadores");
//        }

//        [Test]
//        public void pruebaModificarHorarioPractica()
//        {
//            DateTime horaInicio = DateTime.Parse("8:00");
//            DateTime horaFin = DateTime.Parse("10:00");
//            bool verficacionModificacion = sql.ModificarHorarioPractica(horaInicio, horaFin, "Miercoles", 2);
//            Assert.IsTrue(verficacionModificacion);
//            listaHorarioDeClase = sql.ConsultarHorasPracticas(2);
//            Assert.AreEqual(listaHorarioDeClase[0].Dia, "Miercoles");
//            Assert.AreEqual(listaHorarioDeClase[0].HoraInicio, horaInicio);
//            Assert.AreEqual(listaHorarioDeClase[0].HoraFin, horaFin);
//        }

//       }
//}

using vudu.Logica.Fachada;
using System;
using NUnit.Framework;
using vudu.ClasesDominio;
using System.Collections.Generic;

namespace PruebasPractica
{

    [TestFixture()]
    public class EnlaceLogicoTest
    {

        private TestContext testContextInstance;

        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        /** Crear Practica PruebaUnitaria
                [Test()]
                public void CrearPracticaTest()
                {
                    EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
                    Practica miPractica = new Practica(); // TODO: Initialize to an appropriate value
                    miPractica.horarioDeClase = new List<HorarioDeClase>();
                    HorarioDeClase Horario = new HorarioDeClase();
                    int idSeccionMateria = 1; // TODO: Initialize to an appropriate value

                    miPractica.NombrePractica = "Saimon Dice";
                    miPractica.NumeroSeccion = 987;
                    miPractica.statusPractica = "Activo";
                    miPractica.profesor = new Profesor();
                    miPractica.profesor.Crn = 6;

                    Horario.Dia = "Lunes";
                    Horario.HoraInicio = new DateTime(1900, 01, 01, 11, 00, 0) ;
                    Horario.HoraFin = new DateTime(1900, 01, 01, 14, 00, 0) ;
                    miPractica.horarioDeClase.Add(Horario);

                    bool expected = true; // TODO: Initialize to an appropriate value
                    bool actual;
                    actual = target.CrearPractica(miPractica, idSeccionMateria);
                    Assert.AreEqual(expected, actual);
                }

                **/

        [Test()]
        public void ObtenerMateriasActivasConSeccTeoriaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            string nombreEscuela = "Ingenieria Informatica"; // TODO: Initialize to an appropriate value

            List<Materia> expected = new List<Materia>(); // TODO: Initialize to an appropriate value
            Materia materia = new Materia();
            materia.Nombre = "Trigonometria";
            expected.Add(materia);

            List<Materia> actual;
            actual = target.ObtenerMateriasActivasConSeccTeoria(nombreEscuela);

            Assert.AreEqual(expected[0].Nombre, actual[0].Nombre);
        }

        [Test()]
        public void ArmarEscuelaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            string correoEscuela = "informatica@esc.vudu.com"; // TODO: Initialize to an appropriate value

            Escuela expected = new Escuela(); // TODO: Initialize to an appropriate value
            expected.NombreEscuela = "Ingenieria Informatica";

            Escuela actual;
            actual = target.ArmarEscuela(correoEscuela);
            Assert.AreEqual(expected.NombreEscuela, actual.NombreEscuela);
        }

        [Test()]
        public void ArmarListaDeSeccionesDisponiblesTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            int idEscuela = 1; // TODO: Initialize to an appropriate value
            int idMateria = 10; // TODO: Initialize to an appropriate value

            List<SeccionMateria> expected = new List<SeccionMateria>(); // TODO: Initialize to an appropriate value
            SeccionMateria seccionMateria = new SeccionMateria();
            seccionMateria.IdSeccionMateria = 12;
            expected.Add(seccionMateria);

            List<SeccionMateria> actual;
            actual = target.ArmarListaDeSeccionesDisponibles(idEscuela, idMateria);

            Assert.AreEqual(expected[0].IdSeccionMateria, actual[0].IdSeccionMateria);
        }

        [Test()]
        public void ConsultarProfesoresTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            int idEscuela = 1; // TODO: Initialize to an appropriate value

            List<Profesor> expected = new List<Profesor>(); // TODO: Initialize to an appropriate value
            Profesor profesor = new Profesor();
            profesor.Nombre = "Carlo";
            expected.Add(profesor);

            List<Profesor> actual;
            actual = target.ConsultarProfesores(idEscuela);

            Assert.AreEqual(expected[0].Nombre, actual[0].Nombre);
        }

        [Test()]
        public void ListaSalonesDisponiblesTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            HorarioDeClase horario = new HorarioDeClase(); // TODO: Initialize to an appropriate value
            horario.Dia = "Lunes";
            horario.HoraInicio = new DateTime(1900, 01, 01, 11, 00, 0);
            horario.HoraFin = new DateTime(1900, 01, 01, 14, 00, 0);

            string nombreEscuela = "Ingenieria Informatica"; // TODO: Initialize to an appropriate value
            int idEscuela = 1; // TODO: Initialize to an appropriate value
            int idProfesor = 1; // TODO: Initialize to an appropriate value

            List<Salon> expected = new List<Salon>(); // TODO: Initialize to an appropriate value
            Salon salon = new Salon();
            salon.Nombre = "L2312";
            expected.Add(salon);

            List<Salon> actual;
            actual = target.ListaSalonesDisponibles(horario, nombreEscuela, idEscuela, idProfesor);

            Assert.AreEqual(expected[0].Nombre, actual[0].Nombre);
        }

        [Test()]
        public void ConsultarPracticasDadaSeccionMateriaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            int idSeccionMateria = 10; // TODO: Initialize to an appropriate value

            List<Practica> expected = new List<Practica>(); // TODO: Initialize to an appropriate value
            Practica practica = new Practica();
            practica.IdPractica = 2;
            expected.Add(practica);

            List<Practica> actual;
            actual = target.ConsultarPracticasDadaSeccionMateria(idSeccionMateria);

            Assert.AreEqual(expected[0].IdPractica, actual[0].IdPractica);
        }

        [Test()]
        public void ConsultarPracticaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value

            int idPractica = 9; // TODO: Initialize to an appropriate value

            List<HorarioDeClase> expected = new List<HorarioDeClase>(); // TODO: Initialize to an appropriate value
            HorarioDeClase Horario = new HorarioDeClase();
            Horario.Dia = "Lunes";
            Horario.HoraInicio = new DateTime(1900, 01, 01, 18, 00, 0);
            Horario.HoraFin = new DateTime(1900, 01, 01, 20, 00, 0);
            expected.Add(Horario);

            List<HorarioDeClase> actual;
            actual = target.ConsultarPractica(idPractica);

            Assert.AreEqual(expected[0].Dia, actual[0].Dia);
        }

        /** Eliminar Practica Prueba Unitaria
                [Test()]
                public void EliminarPracticaTest()
                {
                    EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
                    int idPractica = 14; // TODO: Initialize to an appropriate value

                    bool expected = true; // TODO: Initialize to an appropriate value
                    bool actual;
                    actual = target.EliminarPractica(idPractica);

                    Assert.AreEqual(expected, actual);
                }
                **/

        /** Modificar Practica Prueba Unitaria
        [Test()]
        public void ModificarPracticaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value

            Practica miPractica = new Practica(); // TODO: Initialize to an appropriate value
            miPractica.horarioDeClase = new List<HorarioDeClase>();
            HorarioDeClase Horario = new HorarioDeClase();

            miPractica.IdPractica = 9;
            miPractica.NombrePractica = "Saimon Dice";
            miPractica.NumeroSeccion = 987;
            miPractica.statusPractica = "Activo";
            miPractica.profesor = new Profesor();
            miPractica.profesor.Crn = 6;

            Horario.Dia = "Martes";
            Horario.HoraInicio = new DateTime(1900, 01, 01, 11, 00, 0);
            Horario.HoraFin = new DateTime(1900, 01, 01, 14, 00, 0);
            Horario.SalonDeClase = new Salon();
            Horario.SalonDeClase.NumeroSalon = 1;
            miPractica.horarioDeClase.Add(Horario);

            bool expected = true; // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.ModificarPractica(miPractica);

            Assert.AreEqual(expected, actual);
        }

**/

        [Test()]
        public void ConsultarListaMateriasConPracticaTest()
        {
            EnlaceLogico target = new EnlaceLogico(); // TODO: Initialize to an appropriate value
            string nombreEscuela = "Ingenieria Informatica"; // TODO: Initialize to an appropriate value

            List<Materia> expected = new List<Materia>(); // TODO: Initialize to an appropriate value
            Materia materia = new Materia();
            materia.Nombre = "Trigonometria";
            expected.Add(materia);


            List<Materia> actual;
            actual = target.ConsultarListaMateriasConPractica(nombreEscuela);

            Assert.AreEqual(expected[0].Nombre, actual[0].Nombre);
        }
    }
}
